home *** CD-ROM | disk | FTP | other *** search
/ Eagles Nest BBS 6 / Eagles_Nest_Mac_Collection_Disc_6.TOAST / Other Macintosh Text / 68060info / 68060 Information
Text File  |  1993-07-13  |  23KB  |  387 lines

  1. ============================================================================
  2.  
  3.                         The Motorola 68060 Microprocessor
  4.  
  5.  
  6.                         Joe Circello and Floyd Goodrich
  7.  
  8.                    Microprocessor and Memory Technology Group
  9.                                   Motorola Inc.
  10.  
  11.  
  12. Abstract
  13.  
  14.     The Motorola 68060 is the fourth generation microprocessor of the 
  15. M68000 Family.  User object code compatible with previous family members, 
  16. it delivers 3 to 3.5 times the performance of the previous generation 
  17. processor in this family, the 68040.  Performance features include a 
  18. superscalar integer unit, a high-performance floating point unit, dual 
  19. 8 Kbyte on-chip caches, a branch cache, and on-chip memory management units.  
  20. A streamlined design enables high-performance techniques to achieve a high 
  21. level of parallel instruction execution.  Improved performance at a low 
  22. cost makes the 68060 an ideal processor for the mid to high range of 
  23. desktop computing applications, and compatibility features enable it to 
  24. easily upgrade performance of existing 68040-based systems.  This paper 
  25. describes the operation of the 68060.
  26.  
  27. Figure 1 - Simplified 68060 Block Diagram (***NOT SHOWN IN ASCII-ONLY COPY***)
  28.  
  29.  
  30. Introduction and Overview
  31.  
  32.     The 68060 is the fourth generation microprocessor of Motorola's 
  33. M68000 Family of CISC micro-processors.  It is a single-chip implementation 
  34. that employs a deep pipeline, dual-issue superscalar execution, a branch 
  35. cache, a high performance floating point unit (FPU), 8 Kbytes each of 
  36. on-chip instruction and data caches, on-chip demand paged memory management 
  37. units (MMUs).  These features allow it to achieve execution rates of less 
  38. than one clock per instruction sustained execution. 
  39.     In order to meet the performance goals of the 68060, instruction 
  40. execution times needed to decrease, and parallel operations needed to 
  41. increase over previous generations of M68000 microprocessors.  A superscalar 
  42. instruction dispatch micro-architecture is the most obvious feature of this 
  43. increased parallelism on the 68060.  Superscalar architectures are 
  44. distinguished by their ability to dispatch two or more instructions per clock 
  45. cycle from an otherwise conventional instruction stream.
  46.     Figure 1 shows a block diagram of the 68060.  In addition to the 
  47. superscalar features, this single chip has many other performance, upgrade 
  48. and system integration features including:
  49.     * 100% user-mode object code compatibility with 68040
  50.     * Dual-issue superscalar instruction dispatch implementation of 
  51.       M68000 architecture
  52.     * IEEE Compatible on-chip FPU
  53.     * Branch Cache to minimize pipeline refill latency
  54.     * Separate 8 Kbyte on-chip instruction and data    caches with 
  55.           simultaneous access
  56.     * Bus Snooping
  57.     * 68040 compatible bus protocol or new high-speed bus protocol
  58.     * 32-bit nonmultiplexed address and data bus
  59.     * Four-entry write buffer
  60.     * Concurrent operation of Integer Unit, FPU, MMUs, caches, 
  61.           Bus Controller, and Pipeline
  62.     * Sophisticated power management subsystem
  63.     * Low-power 3.3V operation
  64.     * JTAG Boundary Scan
  65.  
  66. Design Targets
  67.  
  68.     The design goals of the 68060 included providing a simple upgrade 
  69. path for existing M68000 Family designs while also supplying a basis for 
  70. Motorola's successful 68EC0x0 Family of embedded controllers and for the 
  71. 68300 Family of modular integrated controllers.
  72.     Initial requirements for the targeted 68060 were to provide a factor 
  73. of three performance enhancement over a 25 MHz 68040 with existing compiler 
  74. technology.  Architectural enhancements were to provide at least a 50% 
  75. improvement while doubling clock frequency doubles performance.  The 
  76. performance estimates reflect analysis of existing object code; additional 
  77. performance advantages are, of course, available when using compilers 
  78. designed specifically for the 68060.
  79.     In addition to software compatibility, the 68060 preserves the 
  80. investment in board-level ASICs by providing bus compatibility with the 
  81. 68040.  This supersocket approach facilitates upgrade of all existing and 
  82. future 68040-based systems.
  83.     The 68060 uses approximately 2.4 million transistors.  The part is 
  84. a static CMOS design based on a 0.5 um triple level metal wafer process.  
  85. This process will enable the 68060 to operate at a 3.3 volt power supply--
  86. a greater than 50% power reduction over a 5.0 volt power supply.  Since the 
  87. 68060 minimizes power dissipation through a variety of architectural and 
  88. circuit techniques, it is able to offer high performance processing to the 
  89. laptop and portable markets in addition to the traditional computer-system 
  90. markets.
  91.  
  92. Architectural Features
  93.  
  94.     The architecture of the 68060 revolves around its novel integer unit 
  95. pipeline.  Taking advantage of many of the same performance enhancements 
  96. used by RISC designs as well as developing new architectural techniques, 
  97. the 68060 harnesses new levels of performance for the M68000 Family.
  98.     The superscalar micro-architecture actually consists of two distinct 
  99. parts:  a four-stage instruction fetch pipeline (IFP) responsible for 
  100. accessing the instruction stream and dual four-stage operand execution 
  101. pipelines (OEPs) which perform the actual instruction execution.  These 
  102. pipeline structures operate in an independent manner with a FIFO instruction 
  103. buffer providing the decoupling mechanism.  A branch cache minimizes the 
  104. latency effects of change of flow instructions by allowing the IFP to 
  105. detect changes in the instruction prefetch stream well in advance of 
  106. their actual execution by the OEPs.
  107.     The 68060 is a full internal Harvard architecture.  The instruction 
  108. and data caches are designed to support concurrent instruction fetch 
  109. and operand read and operand write references on every clock cycle.  This 
  110. organization coupled with a multi-ported register file provide the 
  111. necessary bandwidth to maximize the throughput of the pipelines.  The 
  112. operand execution pipelines operate in a lock-stepped manner that provides 
  113. simultaneous, but not out-of-order, program execution.  The net result is 
  114. a machine architecture invisible to existing applications providing full 
  115. support of the M68000 programming model including precise exceptions.
  116.     The 68060 external bus interface provides a superset of 68040 
  117. functionality.  Maintaining 32-bit widths on both the address and data 
  118. bus as well as a bursting protocol for cacheable memory, the 68060 supports 
  119. transfers of one, two, four, or 16 bytes in a given bus cycle.  The system 
  120. designer can, however, choose to operate in one of two modes:  a mode 
  121. compatible with the 68040 protocol or a new mode consistent with higher 
  122. frequency bus designs.  By allowing this choice, the 68060 can easily fit 
  123. into upgrades of existing designs as well as new high frequency 
  124. implementations.
  125.  
  126. Pipeline Organization
  127.  
  128.     The IFP is responsible for prefetching instructions and loading them 
  129. into the FIFO instruction buffer.  One key aspect of the design is the branch 
  130. cache, which allows the IFP to detect changes in the instruction stream 
  131. based on past execution history.  This allows the IFP to provide a 
  132. constant stream of instructions to the instruction buffer to maximize 
  133. the execution rates of the OEPs.  The IFP is implemented as a four-stage 
  134. design shown in Figure 2.
  135.  
  136. Figure 2 - The IFP of the 68060 (***NOT SHOWN IN ASCII-ONLY COPY***)
  137.  
  138.         The four stages of the IFP are:  Instruction Address Generation (IAG), 
  139. Instruction Cache (IC), Instruction Early Decode (IED) and Instruction 
  140. Buffer (IB).  The instruction and branch caches are integral components of 
  141. the IFP.
  142.         Four operations can be occurring concurrently in the IFP.  The 
  143. IAG stage calculates the next prefetch address from a number of possible 
  144. sources.  The variable length of the M68000 Family instruction set as well 
  145. as change-of-flow detection make this stage critical to the performance of 
  146. the 68060.  After the IAG sends the appropriate address to the instruction 
  147. cache, the IC stage of the IFP is responsible for performing the cache lookup 
  148. and fetching the bit pattern of the instruction.  The IED stage of the 
  149. pipeline analyzes the bytes fetched from the instruction stream and builds 
  150. an extended operation word.  This lookup stage effectively converts the 
  151. variable-length instruction with multiple formats into a fixed-length 
  152. extended operation word that is used by the OEPs in all subsequent processing.  
  153. At the conclusion of the IED stage, the prefetched bytes along with the 
  154. extended operation word issue into the instruction buffer  The IB stage 
  155. reads instructions from the 96-byte FIFO buffer and loads them into 
  156. the dual OEPs.  The FIFO effectively decouples the operation of the IFP from 
  157. the operations of the dual OEPs.
  158.  
  159. Figure 3 - The OEP Units of the 68060 (***NOT SHOWN IN ASCII-ONLY COPY***)
  160.  
  161.  
  162.         Consecutive instructions issue from the FIFO instruction buffer into 
  163. the instruction registers of the dual OEPs.  The operand execution pipelines, 
  164. known as the primary OEP (pOEP) and the secondary OEP (sOEP), are partitioned 
  165. into a 4-stage implementation depicted in Figure 3.  The four stages of the 
  166. OEPs are: Decode and Select (DS), operand Address Generation (AG), Operand 
  167. Cycle (OC) and the EXecute cycle (EX).  For instructions writing data to 
  168. memory, there are two additional pipeline stages:  the Data Available (DA) 
  169. and Store (ST) cycles.
  170.     The Decode and Select stage of the OEPs provides two primary 
  171. functions:  this stage determines the next state for the entire operand 
  172. pipeline and selects the components required for operand address calculation.  
  173. To determine the next state of the OEPs, the DS cycle logic tests the 
  174. extended operation words to ascertain the number of instructions that can 
  175. issue into the AG stage.  If multiple instructions can issue into the AG 
  176. stages in parallel, the first and second instructions move into the 
  177. respective AG stages. If only a single instruction can issue because of 
  178. architectural constraints, the first instruction issues into the pOEP, and 
  179. the DS stage evaluates the second and third instructions as a pair during 
  180. the next clock cycle.  The net effect is a sliding 2-instruction window to 
  181. examine possible pairs of instructions for parallel execution.  A dedicated 
  182. adder located in the AG stage sums the three components of the effective 
  183. address:  the base, the index and the displacement.
  184.     The Operand Cycle (OC) of the OEPs performs the actual fetch of 
  185. operands required by the instruction.  For memory operands, the OEP accesses 
  186. the data cache in this cycle to retrieve the data.  For register operands, 
  187. the OEP accesses the register file containing all the general-purpose 
  188. registers during the OC stage. At the conclusion of the OC cycle, the execute 
  189. engines receive the required operands.  The EXecute cycle (EX) performs the 
  190. operations required to complete the instruction execution including updating 
  191. the condition codes.  If the destination of the instruction is a data or an 
  192. address register, the result is available at the end of the EX stage; if 
  193. the destination is a memory location, the operation requires two additional 
  194. cycles.  First, there is a Data Available (DA) stage where the destination 
  195. operand issues to the data cache, which aligns the operand.  Second, updates 
  196. to the data cache occur during the STore (ST) cycle.  Additionally, there is 
  197. a four longword FIFO write buffer that is selectable on a page basis and 
  198. serves to decouple the operation of the OEPs from external bus cycles.
  199.     Since this is an order-two superscalar machine (dual instruction 
  200. issue), the sOEP is conceptually a copy of the pOEP.  A notable exception to 
  201. this concept is the fact that the sOEP executes only a subset of the complete 
  202. instruction set.  As an example, the floating point execute engine resides 
  203. only in the pOEP.  Consequently, all floating point instructions must execute 
  204. only the pOEP.  As instructions travel down the OEPs, they remain 
  205. lock-stepped.  This insures that there is no out-of-order execution and thus 
  206. greatly simplifies support for the precise exception model of the M68000 
  207. Family.  The micro-architecture of the 68060 supports a number of optimizations 
  208. to increase the number of superscalar instruction dispatches.  In internal 
  209. evaluations of traces from existing object code totaling several billion 
  210. instructions, 50% to 60% of instructions execute as pairs.
  211.     From the preceding discussion concerning the operand pipeline stages, 
  212. all data cache read references occur in the OC stage while data cache write 
  213. references occur in the ST stage.  The data cache uses a 4-way interleaving 
  214. scheme to allow simultaneous operand read and write operations from both 
  215. OEPs.  The data cache directories are a single-ported design.  As a result, 
  216. within a superscalar pair of instructions, the 68060 only allows a single 
  217. operand memory reference.  The data cache also supports single-cycle 
  218. references of 64-bit double-precision floating-point operands.
  219.     A common drawback to long pipelines is the penalty associated with 
  220. refilling the pipeline when a change of program flow occurs.  Condition code 
  221. evaluation occurs in the EX stage, but waiting for a branch instruction to 
  222. reach this point needlessly restricts performance.  Instead, the 68060 
  223. contains a 256-entry Branch Cache (BC) which predicts the direction of a 
  224. branch based on past execution history well in advance of the actual 
  225. evaluation of condition codes.
  226.     The BC stores the Program Counter value of change-of-flow instructions 
  227. as well as the target address of those branches.  The BC also uses some 
  228. history bits to track how each given branch instruction has executed in the 
  229. past.  The 68060 checks the BC during the IC stage of the IFP, the same stage 
  230. that performs the lookup into the Instruction Cache.  If the BC indicates that 
  231. the instruction is a branch and that this branch should be predicted as taken, 
  232. the IAG pipeline stage is updated with the target address of the branch 
  233. instead of the next sequential address.  This approach, along with the 
  234. instruction folding techniques that the BC uses, allow the 68060 to achieve a 
  235. zero-clock latency penalty for correctly predicted taken branches.
  236.     If the BC predicts a branch as not-taken, there is no discontinuity 
  237. in the instruction prefetch stream.  The IFP continues to fetch instructions 
  238. sequentially.  Eventually, the not-taken branch instruction executes as a 
  239. single-clock instruction in the OEP, so correctly predicted not-taken 
  240. branches require a single clock to execute.  These predicted as not-taken 
  241. branches allow a superscalar instruction dispatch, so in many cases, the next 
  242. instruction executes simultaneously in the sOEP.
  243.     The 68060 performs the actual condition code checking to evaluate the 
  244. branch conditions in the EX stage of the OEP.  If a branch has been 
  245. mispredicted, the 68060 discards the contents of the IFP and the OEPs, and 
  246. the 68060 resumes fetching of the instruction stream at the correct location.  
  247. To refill the pipeline in this manner, there is a seven-clock penalty for a 
  248. mispredicted branch.  If the BC correctly predicted the branch, the OEPs 
  249. execute seamlessly with no pipeline stalls.  Internal studies of the 
  250. prediction algorithm used on the 68060 show greater than 90% accuracy from 
  251. statistics gathered from several billions of instructions from applications 
  252. across many runtime environments.
  253.  
  254. Floating Point Unit
  255.  
  256.     The floating point unit (FPU) of the 68060 provides complete binary 
  257. compatibility with previous M68000 Family floating point solutions.  The 
  258. 68060 performs all internal operations in 80-bit extended precision and 
  259. completely supports the IEEE 754 floating point standard.
  260.     Conceptually, the FPU appears as another execute engine in the EX 
  261. stage of the pOEP.  A 64-bit data path between the data cache and the FPU 
  262. optimizes the FPU for single-cycle references of 32- or 64-bit memory 
  263. operands.  As previously noted, all floating point instructions must execute 
  264. through the pOEP.  However, integer instructions can be simultaneously 
  265. dispatched into the sOEP with most FPU instructions, and the 68060 supports 
  266. overlap between the integer execute engines and the FPU.  Once a multi-cycle 
  267. FPU instruction is dispatched, the pOEP and sOEP continue to dispatch and 
  268. complete integer instructions (including change-of-flow instructions) until 
  269. another FPU instruction is encountered.  At this point, the OEPs stall until 
  270. the FPU execute engine is available for the next instruction.
  271.     The FPU's internal organization consists of three units:  the adder, 
  272. the multiplier and the divider.  The 68060's design does not support 
  273. concurrent floating point execution; only one of these functional units is 
  274. active at a time.  Table 1 shows execution times for the 68060 FPU. 
  275.  
  276.         Instruction    CPU Clocks
  277.           FMOVE                1
  278.           FADD                3
  279.           FMUL                4
  280.           FDIV           24
  281.           FSQRT               66
  282.  
  283. Table 1 - 68060 Floating Point Execution Times
  284.  
  285. Pipeline Example
  286.  
  287.     Figure 4 shows an example of the 68060 pipeline operation.  The code 
  288. shown comes from a commercially available compiler and represents the 
  289. inner SAXPY loop from the matrix300 program from the SPEC89 benchmark suite.  
  290. Since the OEPs are decoupled from the IFP, this example only focuses on 
  291. the OEPs.
  292.     This loop executes 13 instructions in only ten clock cycles, 
  293. producing a steady-state performance of 0.77 clocks per instruction (CPI).  
  294. This code includes two multi-cycle FPU instructions (4-cycle FMUL and 3-cycle 
  295. FADD), but the superscalar micro-architecture is  able to effectively exploit 
  296. the parallelism within the loop to achieve a less than one CPI measure.
  297.     This example code loop demonstrates several major architectural 
  298. features of the 68060.  Of the 13 instructions, the 68060 dispatches four 
  299. groups of 2-instruction pairs (at cycles 1, 2, 4, 5), one group of three 
  300. instructions (at cycle 9) and two individual instructions (at cycles 3 and 8).  
  301. At cycle 3, the pair of instructions being examined is {pOEP = lsl.l, 
  302. sOEP = fadd.d}.  Since all floating-point instructions must issue into the 
  303. pOEP, the fadd.d does not issue into the sOEP.  On the next cycle, a new 
  304. 2-instruction pair is examined {pOEP = fadd.d, sOEP = add.l}, and at this 
  305. time, both instructions issue down the OEPs.  At cycles 6 and 7, the pipeline 
  306. stalls on the fadd.d instruction as the 4-cycle fmul completes execution. The 
  307. floating-point store operation at cycle 8 inhibits any sOEP dispatch because 
  308. of certain post-exception fault possibilities.  At cycle 9, an instruction 
  309. triplet is dispatched {add.l, subq.l, bcc.b}.  Recall the branch cache 
  310. utilizes various instruction folding techniques that effectively allow this 
  311. predicted as taken branch to execute in 0 cycles.  Finally, at cycle 10, the 
  312. pipeline stalls for one clock on the floating-point store instruction as it 
  313. waits for the completion of the three-cycle fadd.
  314.  
  315. Power Management On Chip
  316.  
  317.     With 2.4 million transistors operating at frequencies of 50 MHz and 
  318. higher, power management becomes a crucial issue on the 68060.  From the 
  319. inception, the 68060 focused on minimizing chip-level power dissipation.  There 
  320. are primarily three different areas of interest for power dissipation.
  321.     The 68060 operates from a 3.3 volt power supply.  Since power 
  322. dissipation is a function of the square of the power supply voltage, simply 
  323. changing the power supply voltage to  3.3 volts results  in a 56%  reduction 
  324. in power compared to a 5 volt power supply.  In addition to a lower supply 
  325. voltage, the 68060 is a completely static design.  The 68060's operating 
  326. frequency, which linearly affects chip-level power dissipation, can vary 
  327. dynamically down toward the DC range.  Although the 68060 is a 3.3 volt part, 
  328. its I/O buffers interface to either 3 volt or 5 volt peripherals and memory, 
  329. facilitating upgrades of existing designs.
  330.     Sophisticated power management circuitry on chip dynamically controls 
  331. and minimizes power consumption.  This circuitry selectively updates modules 
  332. on the 68060 on a clock-by-clock basis, dynamically shuttung off the circuits 
  333. not required to support the activities in the current clock cycle.  Entire 
  334. areas of the 68060 can shut off for long periods of time when they are not 
  335. required.
  336.     The 68060 also incorporates the LPSTOP instruction.  This instruction 
  337. effectively puts the 68060 into a low-power sleep mode in which it stays until 
  338. awakened by an externally generated interrupt.  Data on previous members of the 
  339. M68000 Family shows that use of the LPSTOP instruction can extend battery 
  340. life in portable applications by over 250%.
  341.  
  342. Summary
  343.  
  344.     The 68060 relies on new as well as standard architectural techniques 
  345. to extend the performance of the M68000 Family product line.  Performance 
  346. simulations predict that between 3 and 3.5 times a 25 MHz 68040 are possible 
  347. using existing  object code.
  348.     The 68060 relies on a deep internal pipeline and a superscalar 
  349. internal architecture coupled with 8 Kbyte instruction and data caches, a 
  350. 256-entry branch cache, on-chip MMUs and an on-chip FPU to bring new levels 
  351. of performance to the M68000 Family architecture.
  352.     Power management is very important on the 68060, and this design uses 
  353. dynamic power management techniques to minimize power consumption.  The 68060 
  354. operates from a 3.3 volt power supply, which greatly reduces its power 
  355. dissipation.  Although the 68060 operates at a lower operating voltage, it 
  356. interfaces to both 3 volt and 5 volt peripherals and logic.
  357.     In addition to providing full application object code compatibility 
  358. with previous CPUs in this family, the 68060 provides a superset of 68040 
  359. hardware functionality.  Designs compatible with existing and future 68040 
  360. systems are simple, and higher frequency designs are possible using a new 
  361. bus interface protocol.
  362.  
  363. Acknowledgements
  364.  
  365.     The authors would like to thank all members of the 68060 design team 
  366. and management  Without their concerted team effort, this project and this 
  367. paper would not have been possible.
  368.  
  369.  
  370. References
  371.  
  372. Bernal, R.D. and Circello, J.C., "Putting RISC Efficiency To Work in CISC 
  373. Architectures," VLSI Systems Design, September 1987, pp. 46-51.
  374.  
  375. Circello, J.C. et al, "Refined Method Brings Precision to Performance 
  376. Analysis," Computer Design, March 1, 1989,   pp. 77-82.
  377.  
  378. Edenfield, R.W. et al, "The 68040 Processor, Part 1, Design and 
  379. Implementation," IEEE MICRO, February 1990, pp. 66-78.
  380.  
  381. Diefendorff, K. and Allen, M., "Organization of the Motorola 88110 
  382. Superscalar RISC Microprocessor," IEEE MICRO, April 1992, pp. 40-63.
  383.  
  384. Hennessy, J. and Patterson, D., "Computer Architecture: A Quantitative 
  385. Approach,"  Morgan Kaufmann Publishers, Inc., San Mateo, CA, 1990.
  386.                                                                    
  387.